package graduandos;

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.util.logging.*;
import javax.swing.*;


public class Principal {

    JFrame ventana, ventana_vestidores;
    JButton iniciar, finalizar, pausar, resumir;
    JLabel cronometro, tiempo, a;
    ImageIcon img;
    JPanel vestidores, inventario, servidor_hombre1, servidor_hombre2,
           servidor_mujer1, servidor_mujer2, servidor_entrega, ganancias;
    Font fuente;
    Hilo h = new Hilo();
    int horas = 0, minutos = 0, segundos = 0;
    
    Principal(){
        
        //ventana principal de la simulación
        ventana = new JFrame("graduandos");ventana.setVisible(true);
        ventana.setLayout(null);
        ventana.setResizable(false);
        ventana.setBounds(100, 50, 800, 600);
        

        img = new ImageIcon("imagenes\\Graduandos.jpg");
        a=new JLabel(img);
        a.setBounds(0, 0, 800, 600);
        ventana.getContentPane().add(a);
        
        //etiqueta que solo dice "Tiempo Transcurrido"
        tiempo = new JLabel("Tiempo Transcurrido");
        fuente = tiempo.getFont();
        tiempo.setFont(new Font(fuente.getFontName(),fuente.getStyle(),18));
        tiempo.setBounds(25, 5, 500, 50);
        tiempo.setVisible(true);
        ventana.getContentPane().add(tiempo);
        
        //etiqueta que lleva el tiempo de la simulación
        cronometro = new JLabel("0"+horas + ":0" + minutos + ":0" + segundos);
        fuente = cronometro.getFont();
        cronometro.setFont(new Font(fuente.getFontName(),fuente.getStyle(),30));
        cronometro.setBounds(25, 35, 125, 50);
        cronometro.setVisible(true);
        ventana.getContentPane().add(cronometro);
        
        //botón para iniciar la simulación
        iniciar = new JButton("Iniciar");
        iniciar.setBounds(25, 80, 200, 30);
        iniciar.setVisible(true);
        ventana.getContentPane().add(iniciar);
        
        //boton para finalizar la simulación
        finalizar = new JButton("Finalizar");
        finalizar.setBounds(25, 80, 200, 30);
        finalizar.setVisible(false);
        ventana.getContentPane().add(finalizar);
        
        //botón para pausar la simulación
        pausar = new JButton("Pausar");
        pausar.setBounds(25, 115, 200, 30);
        pausar.setVisible(false);
        ventana.getContentPane().add(pausar);
        
        //botón para resumir la simulación
        resumir = new JButton("Resumir");
        resumir.setBounds(25, 115, 200, 30);
        resumir.setVisible(false);
        ventana.getContentPane().add(resumir);
        
        //panel de los vestidores
        vestidores = new JPanel();
        vestidores.setBounds(25, 150, 200, 415);
        vestidores.setBackground(Color.red);
        vestidores.setVisible(true);
        ventana.getContentPane().add(vestidores);
        
        //panel del inventario
        inventario = new JPanel();
        inventario.setBounds(250, 15, 520, 200);
        //inventario.setBackground(Color.blue);
        inventario.setVisible(true);
        ventana.getContentPane().add(inventario);
        
        //panel del servidor 1 para hombres
        servidor_hombre1 = new JPanel();
        servidor_hombre1.setBounds(280, 250, 50, 50);
        servidor_hombre1.setBackground(Color.green);
        servidor_hombre1.setVisible(true);
        ventana.getContentPane().add(servidor_hombre1);
        
        //panel del servidor 2 para hombres
        servidor_hombre2 = new JPanel();
        servidor_hombre2.setBounds(380, 250, 50, 50);
        servidor_hombre2.setBackground(Color.orange);
        servidor_hombre2.setVisible(true);
        ventana.getContentPane().add(servidor_hombre2);
        
        //panel del servidor 3 para mujeres
        servidor_mujer1 = new JPanel();
        servidor_mujer1.setBounds(480, 250, 50, 50);
        servidor_mujer1.setBackground(Color.pink);
        servidor_mujer1.setVisible(true);
        ventana.getContentPane().add(servidor_mujer1);
        
        //panel del servidor 4 para mujeres
        servidor_mujer2 = new JPanel();
        servidor_mujer2.setBounds(580, 250, 50, 50);
        servidor_mujer2.setBackground(Color.yellow);
        servidor_mujer2.setVisible(true);
        ventana.getContentPane().add(servidor_mujer2);
        
        //panel del servidor 5 para la entrega de togas y birretes
        servidor_entrega = new JPanel();
        servidor_entrega.setBounds(680, 250, 50, 50);
        servidor_entrega.setBackground(Color.black);
        servidor_entrega.setVisible(true);
        ventana.getContentPane().add(servidor_entrega);
        
        //panel de las ganancias de los alquileres de togas y birretes
        ganancias = new JPanel();
        ganancias.setBounds(630, 300, 50, 50);
        ganancias.setBackground(Color.cyan);
        ganancias.setVisible(true);
        ventana.getContentPane().add(ganancias);
        
        //acción del botón iniciar
        iniciar.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
                
                iniciar.setVisible(false);
                pausar.setVisible(true);
                finalizar.setVisible(true);
                h.start();
                
            }
            public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}
            public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}
        });
        
        //acción del botón finalizar
        finalizar.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
                
                finalizar.setVisible(false);
                pausar.setVisible(false);
                resumir.setVisible(false);
                h.stop();
                
            }
            public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}
            public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}
        });
        
        //acción del botón pausar
        pausar.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
                
                pausar.setVisible(false);
                resumir.setVisible(true);
                h.suspend();
                
            }
            public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}
            public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}
        });
        
        //acción del botón resumir
        resumir.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
                
                resumir.setVisible(false);
                pausar.setVisible(true);
                h.resume();
                
            }
            public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}
            public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}
        });
        
        //panel para mostrar la ventana del vestuario
        vestidores.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
                ventana_vestidores = new JFrame("Vestidores");
                ventana_vestidores.setLayout(null);
                ventana_vestidores.setResizable(false);
                ventana_vestidores.setBounds(150, 100, 700, 500);
                ventana_vestidores.setVisible(true);
                
            }
            public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}
            public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}
        });

        //muestra la ventana principal y la accion de cerrar al salir
        ventana.setVisible(true);
        ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    public static void main(String[] args) {
        Principal ppal = new Principal();
    }
    
    private class Hilo extends Thread {

        @Override
        //run que lleva el tiempo de la simulación
        public void run() {
            for (horas = 0; horas < 24; horas++) {
                for (minutos = 0; minutos < 60; minutos++) {
                    for (segundos = 0; segundos < 60; segundos++) {

                        if (horas >= 0 && horas <= 9) {
                            if (minutos >= 0 && minutos <= 9) {
                                if (segundos >= 0 && segundos <= 9) {
                                    cronometro.setText("0" + horas + ":0" + minutos + ":0" + segundos);
                                } else {
                                    cronometro.setText("0" + horas + ":0" + minutos + ":" + segundos);
                                }
                            } else {
                                if (segundos >= 0 && segundos <= 9) {
                                    cronometro.setText("0" + horas + ":" + minutos + ":0" + segundos);
                                } else {
                                    cronometro.setText("0" + horas + ":" + minutos + ":" + segundos);
                                }
                            }
                        } else {
                            if (minutos >= 0 && minutos <= 9) {
                                if (segundos >= 0 && segundos <= 9) {
                                    cronometro.setText(horas + ":0" + minutos + ":0" + segundos);
                                } else {
                                    cronometro.setText(horas + ":0" + minutos + ":" + segundos);
                                }
                            } else {
                                if (segundos >= 0 && segundos <= 9) {
                                    cronometro.setText(horas + ":" + minutos + ":0" + segundos);
                                } else {
                                    cronometro.setText(horas + ":" + minutos + ":" + segundos);
                                }
                            }
                        }
                        try {
                            Thread.sleep(1000);
                        } catch (InterruptedException ex) {
                            System.out.println("Error en los segundos");
                        }
                        if(horas == 23 && minutos == 59 && segundos == 59)
                            horas = minutos = segundos = 0;
                    }
                }
            }
        }
    }
    
}
